home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / misc / moonbas2 / fixed.cpp < prev    next >
C/C++ Source or Header  |  1994-06-14  |  933b  |  54 lines

  1. #include "fixed.h"
  2.  
  3. static int         cos_table [] =
  4. {
  5. #include "costable.h"
  6. };
  7.  
  8. void               FIX_cos_sin
  9. (
  10.    angle_t         angle,
  11.    fixed *         cosine,
  12.    fixed *         sine
  13. )
  14. {
  15.    while ( angle < 0 )
  16.       angle += 3600;
  17.  
  18.    while ( angle >= 3600 )
  19.       angle -= 3600;
  20.  
  21.    if ( angle < 1800 )
  22.    {
  23.       if ( angle < 900 )
  24.       {
  25.          *cosine = cos_table [angle];
  26.          *sine   = cos_table [900-angle];
  27.       }
  28.       else
  29.       {
  30.          angle -= 900;
  31.  
  32.          *sine   =  cos_table [angle];
  33.          *cosine = -cos_table [900-angle];
  34.       }
  35.    }
  36.    else
  37.    {
  38.       if ( angle < 2700 )
  39.       {
  40.          angle -= 1800;
  41.  
  42.          *cosine = -cos_table [angle];
  43.          *sine   = -cos_table [900-angle];
  44.       }
  45.       else
  46.       {
  47.          angle -= 2700;
  48.  
  49.          *sine   = -cos_table [angle];
  50.          *cosine =  cos_table [900-angle];
  51.       }
  52.    }
  53. }
  54.